/** 打乱列表 */
export function shuffleList<T>(list: T[]): T[] {
  const result = list.slice();
  for (let i = 0; i < result.length; i++) {
    // 获取 0 到 i 之间的随机数
    const j = getRandomInt([0, i]);
    [result[i], result[j]] = [result[j], result[i]];
  }
  return result;
}

/** 获取 [min, max] 之间的随机数 */
function getRandomInt(range: [number, number]): number {
  const randomNumber = Math.random() * (range[1] - range[0] + 1) + range[0];
  return Math.floor(randomNumber);
}
